import Vue from 'vue'
import Vuex from 'vuex'
import http from '@/util/http'

// Vuex: 状态管理模式 + 库
Vue.use(Vuex)

export default new Vuex.Store({
  // 公共变量
  state: {
    citiesID: 310100,
    citiesName: '上海',
    changeCity: true,           // 判断是否更改地区设定，true--更改了
    cinemas: null,          // 记录XX地区的 影院 数据
    revral: true,           // 控制底部导航栏的显示与隐藏
  },
  getters: {
  },
  // 修改数据时定义的方法，在这里修改方便溯源，仅支持同步处理
  mutations: {
    // 参数：1 公共变量对象本身。 2 传过来的参数
    changeName(state,name){
      state.citiesName = name;
    },
    changeID(state,id){
      state.citiesID = id;
    },
    changeCity(state){
      state.changeCity = !state.changeCity;
    },
    getCinemas(state,list){
      state.cinemas = list;
    },
    show(state){
      state.revral = true;
    },
    hide(state){
      state.revral = false;
    }
  },
  // 支持异步与同步 
  actions: {
    getChinemaData(store){
      // console.log(store.state.citiesID,store.state.citiesName);
      // axios数据获取 -- 封装法    原在cinema.vue中写着
      // 将返回一个Promise对象, 存在一个then的方法可以添加回调函数
     return http({
        url:`/gateway?cityId=${store.state.citiesID}&ticketFlag=1&k=4967746`,
        headers:{
           'X-Host':'mall.film-ticket.cinema.list'
        }
    }).then(res => {
        console.log(res.data.data.cinemas);
        // this.cinemas = res.data.data.cinemas;
        
        store.commit("getCinemas",res.data.data.cinemas);
        console.log("影院数据获取成功");
        // 变为false,表示已完成请求
        store.commit("changeCity")

        // 等到DOM创建完成后执行  --让滑动更加顺畅
        // this.$nextTick(() => {
        //     new BetterScroll('.bianduan',{
        //         scrollbar:{
        //             fade: true          // 显示出滚动条
        //         }
        //     })
        // })  
    })
    }
  },
  modules: {
  }
})
